home *** CD-ROM | disk | FTP | other *** search
/ The Utilities Experience / The Utilities Experience - Volume 1.iso / software / comms / thor_2.22 / thor.lha / rexx / UUDecodeConf.thor < prev    next >
Text File  |  1995-12-18  |  3KB  |  151 lines

  1. /*
  2.  * $VER: UUDecodeConf.thor 4.2 (01.09.95)
  3.  *
  4.  * Decodes all uuencoded files in a conference.
  5.  *
  6.  * Version 4.2 changed by Troels to use Rexx/UUDecode.thor for
  7.  * decoding, instead of being hardcoded to use uuOut.
  8.  *
  9.  */
  10.  
  11. /* trace results */
  12. options results
  13.  
  14.     MDB_DELETED       =  5   /* Message is deleted. */
  15.  
  16.  
  17. p = address() || ' ' || show('P',,)
  18. thorport = pos('THOR.',p)
  19.  
  20. if thorport > 0 then thorport = word(substr(p,thorport),1)
  21. else
  22. do
  23.     say 'No THOR port found!'
  24.     exit 10
  25. end
  26.  
  27. if ~show('p', 'BBSREAD') then do
  28.     address command
  29.         "run >nil: `GetEnv THOR/THORPath`bin/LoadBBSRead"
  30.         "WaitForPort BBSREAD"
  31. end
  32.  
  33. address BBSREAD
  34. GETGLOBALDATA GLOBALDATA
  35. if(rc ~= 0) then
  36. do
  37.     address(thorport)
  38.     REQUESTNOTIFY TEXT '"GETGLOBALDATA: ' || BBSREAD.LASTERROR || '"' BT '"_Ok"'
  39.     exit
  40. end
  41.  
  42. if GLOBALDATA.TMPDIR == '' then tmpfile = 'T:tfil1'
  43. else
  44. do
  45.     if ~(right(GLOBALDATA.TMPDIR,1) = ':' | right(GLOBALDATA.TMPDIR,1) = '/') then tmpfile = GLOBALDATA.TMPDIR || '/tfil1'
  46.     else tmpfile = GLOBALDATA.TMPDIR || 'tfil1'
  47. end
  48.  
  49. if exists(tmpfile) then address command 'delete >nil:' tmpfile
  50.  
  51. address(thorport)
  52. CURRENTSYSTEM stem CURRENT
  53. if(rc ~= 0) then 
  54. do
  55.     REQUESTNOTIFY TEXT '"CURRENTSYSTEM: ' || THOR.LASTERROR || '"' BT '"_Ok"'
  56.     exit
  57. end
  58.  
  59. if CURRENT.CONFNAME == "" then
  60. do
  61.     REQUESTNOTIFY TEXT '"No Active Conference"' BT '"_Ok"'
  62.     exit
  63. end
  64.  
  65.  
  66. GETMESSAGEARRAY CONF '"'CURRENT.CONFNAME'"' STEM ARRAY
  67. if(rc ~= 0) then 
  68. do
  69.     REQUESTNOTIFY TEXT '"GETMESSAGEARRAY: ' || THOR.LASTERROR || '"' BT '"_Ok"'
  70.     exit
  71. end
  72.  
  73. if ARRAY.COUNT == 0 then
  74. if(rc ~= 0) then 
  75. do
  76.     REQUESTNOTIFY TEXT '"No messages to process"' BT '"_Ok"'
  77.     exit
  78. end
  79.  
  80. mcnt = 0
  81.  
  82. drop MSGLIST.
  83.  
  84. address BBSREAD
  85.  
  86. do n = 1 to ARRAY.COUNT
  87.     READBRMESSAGE '"'||CURRENT.BBSNAME||'"' '"'||CURRENT.CONFNAME||'"' ARRAY.n headstem MSGHEAD datastem MSGDATA
  88.     if(rc ~= 0) then
  89.     do
  90.         address(thorport)
  91.         REQUESTNOTIFY TEXT '"READBRMESSAGE: ' || BBSREAD.LASTERROR || '"' BT '"_Ok"'
  92.         exit
  93.     end
  94.  
  95.     if ~(bittst(MSGDATA.FLAGS, MDB_DELETED)) then
  96.     do
  97.         mcnt = mcnt + 1
  98.  
  99.         MSGLIST.mcnt = ARRAY.n
  100.         MSGLIST.mcnt.SUBJECT = MSGHEAD.SUBJECT
  101.     end
  102. end
  103.  
  104.  
  105.  
  106. address(thorport)
  107.  
  108. do m = 1 to mcnt
  109.  
  110.     writemsg = 0
  111.  
  112.     do n = 1 to mcnt
  113.         if MSGLIST.n > 0 then
  114.         do
  115.             if writemsg > 0 then
  116.             do
  117.                 if MSGLIST.n.SUBJECT < MSGLIST.writemsg.SUBJECT then writemsg = n
  118.             end
  119.             else writemsg = n
  120.         end
  121.     end
  122.  
  123.     if writemsg > 0 then 
  124.     do
  125.         SAVEMESSAGE '"'||CURRENT.BBSNAME||'"' '"'||CURRENT.CONFNAME||'"' MSGLIST.writemsg NOHEADER NOANSI FILE tmpfile
  126.         if(rc ~= 0) then 
  127.         do 
  128.             REQUESTNOTIFY TEXT '"Not able to save current message."' BT '"_Ok"'
  129.             exit
  130.         end
  131.  
  132.         MSGLIST.writemsg = 0
  133.     end
  134. end
  135.  
  136. address command 'rx `GetEnv THOR/THORPath`Rexx/UUDecode.thor ' || tmpfile
  137.  
  138. address(thorport)
  139. if(rc ~= 0) then
  140. do
  141.     REQUESTNOTIFY TEXT '"'Error in uudecoding!'"' BT '"_Ok"'
  142. end
  143. else
  144. do
  145.     REQUESTNOTIFY TEXT '"'Done!'"' BT '"_Ok"'
  146. end
  147.  
  148. address command 'delete >nil:' tmpfile
  149.  
  150. exit
  151.